#include "../../include/pool/result.h"
#include <string>
#include <memory>
Result::Result(std::shared_ptr<Task> task, bool isValid) : task_(task), isValid_(isValid)
{
    task_->setResult(this);
};

Any Result::get()
{ // 用户调用
    if (!isValid_)
    {
        return "!isValid_";
    }
    sem_.wait();
    return std::move(any_);
}

void Result::setValue(Any any)
{ // 线程池执行返回
    this->any_ = std::move(any);
    sem_.post();
}